package level;

/**
 * The constraints that must be negotiated to successfully complete a level.
 * 
 * @author Neil Cowzer
 */
public class Goal {
	/** The Level time limit */
	private int timelimit;
	//@ invariant timelimit > 0;
	
	/** Number of Lemmings to save */
	private int num2Save;
	//@ invariant num2save > 0;
 
	/**
	 * Create an instance of Goal.
	 * 
	 * @param timelimit the maximum amount of time to save the required Lemmings.
	 * @param num2Save the minimum number of lemmings to save.
	 */
	/*@ requires timelimit > 0 && num2save > 0;
	  	assignable timelimt && num2save;
	@*/
	public Goal(int timelimit, int num2Save){
		this.timelimit = timelimit;
		this.num2Save = num2Save;
	}
	
	/**
	 * Retrive the number of Lemmings to save.
	 * 
	 * @return number of Lemmings to save.
	 */
	public /*@ pure @*/ int getNum2Save() {
		return num2Save;
	}

	/**
	 * Retrieve the maximum amount of time to save the required Lammings.
	 * 
	 * @return an int representing time in ms.
	 */
	public /*@ pure @*/ int getTimelimit() {
		return timelimit;
	}
	

}
